\documentclass[french]{article}
\usepackage{aeguill,aecompl,babel,tikz,geometry}
\usetikzlibrary{arrows}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\pagestyle{empty}
\geometry{
paperwidth=18cm,
paperheight = 8cm,
left=2pt,
right=2pt,
top=2pt,
bottom=0pt
}
\begin{document}
\begin{center}
\tikzset{descend/.style={stealth-},depend/.style={o-},inside/.style={open diamond-}}
\begin{tikzpicture}[every node/.append style={align=left,draw,rounded corners}]
\node (stock) at (0,0) {stock:\\\textendash\ montant local\\\textendash\ montant total\\\textendash\ historique};
\node[below= 5mm, anchor=north]        (banque)  at (stock.south)       {banque:\\\textendash\ compte\\\textendash\ montant total compte};
\node[right = 5mm, anchor=north west]  (liquide) at (banque.north east) {liquide:\\\textendash\ montant total liquide};
\node[left = 5mm,anchor=east]          (epargne) at (banque.west)       {épargne:\\\textendash\ compte};
\node[left = 5mm,anchor=east]          (histo)   at (stock.west)        {écriture:\\\textendash\ date\\
                                                                                       \textendash\ catégorie\\
                                                                                       \textendash\ montant\\
                                                                                       \textendash\ description};
\node[left=5mm,anchor=east]                (date)   at (histo.west)        {date:\\\textendash\ jour\\
                                                                                   \textendash\ mois\\
                                                                                   \textendash\ année\\
                                                                                   \textendash\ écriture nombre\\
                                                                                   \textendash\ écriture lettre\\
                                                                                   \textendash\ comparateurs};
\draw[descend] (stock) -- (liquide);
\draw[descend] (stock) -- (banque);
\draw[descend] (stock) -- (epargne);
\draw[inside]  (epargne) -- (banque);
\draw[inside]  (histo) -- (stock);
\draw[inside]  (date) -- (histo);
\end{tikzpicture}
\end{center}
\begin{verbatim}
void compta::operation(double montant, stock* source,stock* cible)
{
  if(source != NULL)source->minus(montant,(cible == NULL));
  if(cible != NULL)final->plus(montant,(source == NULL));
}
\end{verbatim}
\end{document}
